package zhongbo.java.air.common.util;


/**
 * 数值处理工具类
 *
 * @author WeiJin
 * @version 1.0
 * @date 2025/4/1 9:37
 */
public class NumberUtil {
    /**
     * 工具类私有化构造器
     */
    private NumberUtil() {
    }

    /**
     * 校验小数合法性
     *
     * @param number            被校验的小数
     * @param integerPartMaxLen 整数部分最大长度
     * @param decimalPartMaxLen 小数部分最大长度
     * @return 合法返回true 不合法返回 false
     */
    public static boolean validDecimal(double number, int integerPartMaxLen, int decimalPartMaxLen) {
        String strNumber = String.valueOf(number);
        // 使用正则表表达式匹配小数
        String regex = "^-?\\d{1," + integerPartMaxLen + "}(\\.\\d{1," + decimalPartMaxLen + "})?$";
        return !strNumber.matches(regex);
    }

    /**
     * 检验整数合法性
     *
     * @param number    整数
     * @param maxLength 最大长度
     * @return 合法返回true 不合法返回 false
     */
    public static boolean validInteger(int number, int maxLength) {
        String strNumber = String.valueOf(number);
        // 正则表达式
        String regex = "^-?\\d{1," + maxLength + "}$";
        return strNumber.matches(regex);
    }
}
